package com.vcc.data.entity;


import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import com.vcc.data.base.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@Data
@Setter
@Getter
@Table(value = "vcc_share_account_detail", comment = "共享账户")
public class ShareAccountDetail extends BaseEntity implements Serializable {

    @Column(comment = "账户ID", value = "share_account_id")
    private Long shareAccountId;

    @Column(comment = "账户余额", value = "balance")
    private BigDecimal balance;

    @Column(comment = "币种", value = "currency_code")
    private String currencyCode;

    @Column(comment = "渠道编码", value = "channel_code")
    private String channelCode;

    /**
     *  TRANSFER_IN  转入
     *  TRANSFER_OUT 转出
     *  OPEN 开卡
     *  AUTH 预授权
     *  AUTH_FEE 预授权手续费
     *  MIN_AUTH_FEE 小金额预授权手续费
     *  FAIL_AUTH_FEE 预授权失败手续费
     *  CROSS_BORDER_AUTH_FEE 跨境预授权手续费
     *  REFUND 退款
     *  REFUND_FEE 退款手续费
     *  REVERSAL 预授权撤销
     *  REVERSAL_FEE 预授权撤销手续费
     *  FEE 手续费
     */
    @Column(comment = "类型", value = "type")
    private String type;

    @Column(comment = "订单ID", value = "order_id")
    private String orderId;

    @Column(comment = "变动金额", value = "amount")
    private BigDecimal amount;

    @Column(comment = "备注", value = "remark")
    private String remark;

    @Column(comment = "是否为入账", value = "has_transfer_in")
    private Boolean hasTransferIn;

    @Column(comment = "卡类型ID", value = "card_type_id")
    private Long cardTypeId;

    @Column(comment = "用户卡ID", value = "user_card_id")
    private Long userCardId;

    @Column(comment = "用户ID", value = "user_id")
    private Long userId;

    @Column(comment = "操作用户ID", value = "operation_user_id")
    private Long operationUserId;

    @Column(comment = "请求时间", value = "request_date")
    private Date requestDate;
}
